<?php
/**
 * 广告控制器
 */
class AdController extends IsLoginController{
	//广告管理首页
	public function index(){
		header("Content-type:text/html;charset=utf-8");
		//扫描目录广告文件
		$adinfo = glob('./ad/js/*');
		//循环遍历扫描的文件夹
		foreach($adinfo as $k => $v){
			//抓取每个js文件内容
		  $data = file_get_contents($v);
		  //截取json字符串
		  $data = substr($data,strpos($data,'=>'),-7);
		  //替换掉不需要的开始头字符串 只留json字符串
		  $data = str_replace('=>', '', $data);
		  //json转php数组
		  $ad = json_decode($data);
//		  p($ad);die; 样式如下
//		  	stdClass Object   // 主要过滤  “stdClass Object"改为数字键名  方便视图循环 用
//					(
//					    [adName] => js广告测试
//					    [adFilename] => index_js
//					    [adType] => 4
//					    [adWordsTitle] => test
//					    [fileUrl] => 
//					    [adSizeW] => 
//					    [adSizeH] => 
//					    [adUrl] => 
//					    [adRemark] => ceshi
//					    [adCode] => 
//					)
		  //调用方法将 json 对象转成的php数组重组   返回数组
		  $adInfo[$k] =$this->object_array($ad);
		}
		$this->assign('adInfo',$adInfo);
		$this->display();
	}
	
	//添加广告
	public function addAd(){
		header("Content-type:text/html;charset=utf-8");
		if(IS_POST){
			//广告类型组合
				$adName = Q('post.adName');//广告名称
			    $adFilename = Q('post.adFilename');//广告生成文件名
			    $adType = Q('post.adType');//广告类型
			    $adWordsTitle =Q('post.adWordsTitle');//广告文字标题
			    $adCode = $_POST['adCode'];//广告代码
			   	$adSizeW = Q('post.adSizeW');//长
			    $adSizeH = Q('post.adSizeH');//宽
			    $adUrl = Q('post.adUrl');//链接
			   	$adRemark  = Q('post.adRemark');//备注
			   	$fileUrl = Q('post.fileUrl');//上传文件路径
			   	$adData ='';//定义空字符串
			//文字广告
			if(Q('post.adType')=='文字'){
				//提交判断
				if(!isset($adWordsTitle)  || $adWordsTitle == ''  || !isset($adUrl) || $adUrl == ''){
					$this->error("内容填写不完整");
				}
				//组合文字广告标题 和链接
				$adWordsTitle = array_filter(explode('|', $adWordsTitle));
				$adUrl = array_filter(explode('|', $adUrl));
				
				foreach($adWordsTitle as $k => $v){
					$adData .= " <a href='".$adUrl[$k]."'>".$v."</a> ";
				}
			}
			//图片广告
			if(Q('post.adType')=="图片"){
				//提交判断
				if(!isset($fileUrl)  || $fileUrl == ''  || !isset($adUrl) || $adUrl == ''){
					$this->error("内容填写不完整");
				}
				$adData .= " <a href='".$adUrl."'><img src='".__ROOT__."/".$fileUrl."' style='width:".$adSizeW.";height:".$adSizeW.";' alt='".$adName."' /></a> ";
			}
			// flash广告
			if(Q('post.adType')=="flash"){
				//为组合
				$this->error("该功能暂未开通,请选择其他方式");
				$adData .= "";
			}
			//代码广告
			if(Q('post.adType')=="代码"){
				//是否控制判断
				if(!isset($adCode) || $adCode == ''){
					$this->error("代码不能为空");
				}
				$adData .= $adCode;
			}
			if(Q('post.adType')==""){
				$this->error("类型未选择");
			}
			//转类型输出文件
			$adData = addslashes($adData);
			$t = date('y/m/d H:i:s');
			$ad = json_encode($_POST);
			$str = <<<str
//广告标题：$adName;
//广告文件名:$adFilename;
//时间：$t;
//调用方式：<script type="text/javascript" src="__ROOT__/ad/js/$adFilename.js"></script> //将__ROOT__替换成自己的网站
//备注:$adRemark;

document.write("$adData");
/*
array(
'delLog' =>
$ad
)
*/
str;
			//组合生成文件路径
			$path = "./ad/js/".$adFilename.".js";
			$myfile = fopen($path,'a' ); //如果没有就试图创建文件
			file_put_contents($path, $str);
			if(is_file($path)){
				$this->success('添加成功');
			}
		}
		$this->display();
	}
	
	//广告编辑
	public function editAd(){
		if(IS_POST){
			//广告类型组合
				$adName = Q('post.adName');//广告名称
			    $adFilename = Q('post.adFilename');//广告生成文件名
			    $adType = Q('post.adType');//广告类型
			    $adWordsTitle =Q('post.adWordsTitle');//广告文字标题
			    $adCode = $_POST['adCode'];//广告代码
			   	$adSizeW = Q('post.adSizeW');//长
			    $adSizeH = Q('post.adSizeH');//宽
			    $adUrl = Q('post.adUrl');//链接
			   	$adRemark  = Q('post.adRemark');//备注
			   	$fileUrl = Q('post.fileUrl');//上传文件路径
			   	$adData ='';//定义空字符串
			//文字广告
			if(Q('post.adType')=="文字"){
				//提交判断
				if(!isset($adWordsTitle)  || $adWordsTitle == ''  || !isset($adUrl) || $adUrl == ''){
					$this->error("内容填写不完整");
				}
				//组合文字广告标题 和链接
				$adWordsTitle = array_filter(explode('|', $adWordsTitle));
				$adUrl = array_filter(explode('|', $adUrl));
				
				foreach($adWordsTitle as $k => $v){
					$adData .= " <a href='".$adUrl[$k]."'>".$v."</a> ";
				}
			}
			//图片广告
			if(Q('post.adType')=="图片"){
				//提交判断
				if(!isset($fileUrl)  || $fileUrl == ''  || !isset($adUrl) || $adUrl == ''){
					$this->error("内容填写不完整");
				}
				$adData .= " <a href='".$adUrl."'><img src='".__ROOT__."/".$fileUrl."' style='width:".$adSizeW.";height:".$adSizeW.";' alt='".$adName."' /></a> ";
			}
			// flash广告
			if(Q('post.adType')=="flash"){
				//为组合
				$this->error("该功能暂未开通,请选择其他方式");
				$adData .= "";
			}
			//代码广告
			if(Q('post.adType')=="代码"){
				//是否控制判断
				if(!isset($adCode) || $adCode == ''){
					$this->error("代码不能为空");
				}
				$adData .= $adCode;
			}
			if(Q('post.adType')==""){
				$this->error("类型未选择");
			}
			//转类型输出文件
			$adData = addslashes($adData);
			$t = date('y/m/d H:i:s');
			$ad = json_encode($_POST);
			$str = <<<str
//广告标题：$adName;
//广告文件名:$adFilename;
//时间：$t;
//调用方式：<script type="text/javascript" src="__ROOT__/ad/js/$adFilename.js"></script> //将__ROOT__替换成自己的网站
//备注:$adRemark;

document.write("$adData");
/*
array(
'delLog' =>
$ad
)
*/
str;
			//组合生成文件路径
			$path = "./ad/js/".$adFilename.".js";
			$myfile = fopen($path,'a' ); //如果没有就试图创建文件
			file_put_contents($path, $str);
			//判断文生成成功就返回成功提示
			if(is_file($path)){
				$this->success('修改成功');
			}
		}
		//调用广告信息
		$fileName = Q('get.fileName');//接收修改文件名
		$path = __ROOT__."/ad/js/".$fileName.".js";//组合修改文件路径
		   //抓取文件内容
		  $data = file_get_contents($path);
		  //截取json字符串
		  $data = substr($data,strpos($data,'=>'),-7);
		  //替换掉不需要的开始头字符串 只留json字符串
		  $data = str_replace('=>', '', $data);
		  //json转php数组
		  $ad = json_decode($data);
		  //将json对象转php数组
		  $adInfo =$this->object_array($ad);
		  //分配视图数组
		  $this->assign('adInfo',$adInfo);
		  $this->display();
	}
	
	//删除广告
	public function del(){
		if(IS_GET){
			//获取post信息
			$fileName = Q('get.fileName');//接收修改文	件名
			$path = "./ad/js/".$fileName.".js";//组合修改文件路径
			//判断文件路径存在就删除  避免文件不存在报错
			if(is_file($path)){
				unlink($path);
			}			
			$this->success("删除成功");
		}

		
	}
	//处理文件上传
	public function addUpload(){
		$upload = new Upload('upload/ad/'. date('y/m/d'));
		$file = $upload->upload();
		$data = $file[0];
		$this->ajax($data);	
	}
	
	//调用这个函数，将其幻化为数组，然后取出对应值
	public function object_array($array){
	   if(is_object($array)){
	    $array = (array)$array;
	   }
	   if(is_array($array)){
	    foreach($array as $key=>$value){
	     $array[$key] = $this->object_array($value);
	    }
	   }
	   return $array;
	}
}
